Skip to content

Conversation

@jbaiera
Copy link
Member

@jbaiera jbaiera commented Sep 11, 2025

Fixes field querying and writing logic for NormalizeForStreamProcessor so that it can function on both classic and flexible ingest pipeline access patterns.

NormalizeForStreamProcessor was added in #125699 with support for the default ingest node field access logic (now known as classic mode). We have since added support for the flexible access pattern in ingest pipelines, which allows for querying dotted field names and writing dotted field names when parent path elements are missing.

The NormalizeForStreamProcessor was written with the classic access pattern in mind. The processor was designed to look for singular field names and to rely on the classic field writing logic which creates intermediate parent objects when setting a value that is nested in the document. When flexible mode was enabled, the logic did not anticipate dotted field names that could be inconsistently accessible from the source map at certain points in the path notation. Further, the flexible access pattern does not create intermediate parent objects like before. A secondary renaming method was added to take these changes into account.

@jbaiera jbaiera added >bug :Data Management/Ingest Node Execution or management of Ingest Pipelines including GeoIP v9.2.0 labels Sep 11, 2025
@elasticsearchmachine elasticsearchmachine added the Team:Data Management Meta label for data/management team label Sep 11, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-data-management (Team:Data Management)

@elasticsearchmachine
Copy link
Collaborator

Hi @jbaiera, I've created a changelog YAML for you.

Copy link
Member

@masseyke masseyke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jbaiera jbaiera added the auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) label Sep 12, 2025
@elasticsearchmachine elasticsearchmachine merged commit 2547703 into elastic:main Sep 12, 2025
34 checks passed
@jbaiera jbaiera deleted the streams-fix-normalize-wip branch September 12, 2025 21:44
mridula-s109 pushed a commit to mridula-s109/elasticsearch that referenced this pull request Sep 17, 2025
…or` (elastic#134524)

Fixes field querying and writing logic for NormalizeForStreamProcessor
so that it can function on both `classic` and `flexible` ingest pipeline
access patterns. 

NormalizeForStreamProcessor was added in
elastic#125699 with support for
the default ingest node field access logic (now known as `classic`
mode). We have since added support for the `flexible` access pattern in
ingest pipelines, which allows for querying dotted field names and
writing dotted field names when parent path elements are missing.

The NormalizeForStreamProcessor was written with the classic access
pattern in mind. The processor was designed to look for singular field
names and to rely on the classic field writing logic which creates
intermediate parent objects when setting a value that is nested in the
document. When flexible mode was enabled, the logic did not anticipate
dotted field names that could be inconsistently accessible from the
source map at certain points in the path notation. Further, the flexible
access pattern does not create intermediate parent objects like before.
A secondary renaming method was added to take these changes into
account.
gmjehovich pushed a commit to gmjehovich/elasticsearch that referenced this pull request Sep 18, 2025
…or` (elastic#134524)

Fixes field querying and writing logic for NormalizeForStreamProcessor
so that it can function on both `classic` and `flexible` ingest pipeline
access patterns. 

NormalizeForStreamProcessor was added in
elastic#125699 with support for
the default ingest node field access logic (now known as `classic`
mode). We have since added support for the `flexible` access pattern in
ingest pipelines, which allows for querying dotted field names and
writing dotted field names when parent path elements are missing.

The NormalizeForStreamProcessor was written with the classic access
pattern in mind. The processor was designed to look for singular field
names and to rely on the classic field writing logic which creates
intermediate parent objects when setting a value that is nested in the
document. When flexible mode was enabled, the logic did not anticipate
dotted field names that could be inconsistently accessible from the
source map at certain points in the path notation. Further, the flexible
access pattern does not create intermediate parent objects like before.
A secondary renaming method was added to take these changes into
account.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) >bug :Data Management/Ingest Node Execution or management of Ingest Pipelines including GeoIP Team:Data Management Meta label for data/management team v9.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants